using System;
using System.Runtime.InteropServices;
namespace BMC.ARSystem
{
	[ClassInterface, ComVisible(false), Guid("9a5249e8-02b2-4789-b208-94d411cadd2b"), ProgId("BMC.ARSystem.FieldMapping")]
	public abstract class FieldMapping
	{
		public FieldMapping()
		{
		}
		internal FieldMapping(object[] rawData, Server server)
		{
		}
		internal static FieldMapping createInstance(object[] rawData, Server server)
		{
			switch ((uint)rawData[0])
			{
			case 1u:
				return new RegularFieldMapping(rawData, server);
			case 2u:
				return new JoinFieldMapping(rawData, server);
			case 3u:
				return new ViewFieldMapping(rawData, server);
			case 4u:
				return new VendorFieldMapping(rawData, server);
			default:
				return new UndefinedFieldMapping();
			}
		}
	}
}
